package com.newedu.equipmgr.dao;


import com.newedu.equipmgr.entity.SysUser;

import java.sql.SQLException;
import java.util.List;


public interface SysUserDao {

	/** insert update delete select All select one select by condition with paging*/
	/**
	 * 用户登陆，根据用户名查询数据库，并且返回数据对象SysUser
	 * @param username 用户名参数
	 * @return 数据库中存在的数据对象SysUser
	 * @throws SQLException
	 */
	SysUser login(String username)throws SQLException;

	/**
	 * 插入 用户数据，并且返回是否插入成功
	 * @param sysUser 数据对象SysUser
	 * @return 是否插入成功，true-成功，false-失败
	 * @throws SQLException
	 */
	boolean insert(SysUser sysUser) throws SQLException;

	/**
	 *  更新操作，并返回是否更新成功
	 * @param sysUser 数据对象SysUser
	 * @return 是否更新成功，true-成功，false-失败
	 * @throws SQLException
	 */
	boolean update(SysUser sysUser,String roleId) throws SQLException;
	/**
	 *  删除操作，并返回是否删除成功
	 * @param id 用户数据的主键id
	 * @return 是否删除成功，true-成功，false-失败
	 * @throws SQLException
	 */
	boolean delete(int id) throws SQLException;

	/**
	 * 查询数据库表中的数据，返回所有的结果集对象
	 * @return 结果集对象 List<SysUser>
	 * @throws SQLException
	 */
	List<SysUser> selectAll() throws SQLException;

	/**
	 * 根据用户主键id，查询一笔数据，并返回数据对象SysUser
	 * @param id 用户的主键id
	 * @return 数据对象SysUser
	 * @throws SQLException
	 */
	SysUser selectOne(int id) throws SQLException;

	/**
	 * 根据用户输入的查询条件 ,例如，用户名等等，和分页情况下页面值，返回查询到结果集对象
	 * @param condition 查询条件
	 * @param pageNum 分页的页码
	 * @param pageSize 分页大小
	 * @return 查询到的结果集对象 List<SysUser>
	 * @throws SQLException
	 */
	List<SysUser> selectBy(String condition, int pageNum, int pageSize) throws SQLException;

	/**
	 * 获取表中所有的行数，用于分页
	 * @return
	 * @throws SQLException
	 */
	int countRows(String condition)throws SQLException;

	boolean insertUserAndRoleRelationship(SysUser sysUser, int roleId) throws SQLException;



	// 手机端 登陆使用
	SysUser login(String username, String pwd)throws SQLException;

}
